#ifndef INCLUDE_H_
#define INCLUDE_H_

typedef enum locomotion{walk=0, jump, fly, fall}Locomotion;

#define PI 3.14159
#define PLAYER_MAX_HEALTH 100.0
#define DEFAULT_MAX_STATIC_FRICTIONAL_FORCE 700.0f
#define GRAVITATIONAL_FORCE -1000
#define JUMP_FORCE 150000.0
#define WALLJUMP_FORCE 100000.0
#define WALL_FRICTION_FORCE 400.0
#define MAX_MOVE_FORCE 10000.0
#define MIN_MOVE_FORCE 5000.0
#define AIR_MOVE_FORCE 700.0
#define MOVE_MULTIPLIER 200.0
#define BEARD_WHIP_FORCE 100000.0
#define BREAK_ROPE_FORCE 3000.0
#define BEARD_SHRINK_LENGTH 2.0
#define OBJECT_CLASS 0
#define CONTROLLEDOBJECT_CLASS 1
#define PINNEDOBJECT_CLASS 2
#define GRENADE_OBJECT_CLASS 3
#define GHOST_OBJECT_CLASS 4
#define PLAYER_OBJECT_CLASS 5

#define HOP_MULTIPLIER 7000.0
#define MAX_HOP_FORCE  20000.0
#define MAX_TALK_DISTANCE 20.0


#define WOOD_FILE "./Images/wood.bmp"
#define WOOD_INDEX 0
#define STONEWALL_FILE "./Images/stonewall.bmp"
#define STONEWALL_INDEX 1
#define LOG_FILE "./Images/log.bmp"
#define LOG_INDEX 2
#define BOULDER_FILE "./Images/boulder.bmp"
#define BOULDER_INDEX 3

#define GLUT_WHEEL_UP   3
#define GLUT_WHEEL_DOWN 4
#define MIN_CAMERA_SIZE Vector2D(50,50);
#define MAX_CAMERA_SIZE Vector2D(100,100);

#define BACKGROUND_FILE "./Images/nightsky.bmp"
#define PARALLAX_BACK_FILE "./Images/hongkong.bmp"
#define PARALLAX_MIDDLE_FILE "./Images/chicago.bmp"
#define PARALLAX_FRONT_FILE "./Images/newyork.bmp"

#define GRENADE_TEXTURE "./Images/basicgrenade.bmp"
#define EXPLOSION_TEXTURE "./Images/explosion.bmp"
#define GHOST_TEXTURE "./Images/ghost.bmp"
#define FONT_TEXTURE "./Images/font.bmp"
#define BUTTON_TEXTURE "./Images/buttons.bmp"
#define ABE_PORTRAIT_TEXTURE "./Images/abe_portrait.bmp"
#define FROG_TEXTURE "./Images/frog.bmp"
#define FLOWER_TEXTURE "./Images/flower.bmp"
#define PANIC_FROG_TEXTURE "./Images/frog.bmp"
#define GUI_BAR_TEXTURE "./Images/gradient.bmp"
#define SPARKLE_TEXTURE "./Images/sparkles.bmp"
#define TENTACLE_TEXTURE "./Images/tentacle.bmp"

#define FROG_SIZE Vector2D(3,3)

#define MAIN_MENU_INDEX 0
#define LEVEL_MENU_INDEX 1
#define GUI_TOP_INDEX 2
#define GUI_CBOX_INDEX 3

#define UNKNOWN_TYPE -1
#define BORDER_TYPE 0
#define PLAYER_TYPE 1
#define OBJECT_TYPE 2
#define ENEMY_TYPE 3
#define BACKGROUND_TYPE 4
#define MATERIAL_TYPE 5
#define PICKUP_TYPE 6
#define CHARACTER_TYPE 7

#define PINNED_OBJECT_TYPE 0
#define BASE_OBJECT_TYPE 1
#define TRANSLATING_OBJECT_TYPE 2
#define ROPED_OBJECT_TYPE 3
#define NPC_OBJECT_TYPE 4
#define TOGGLE_OBJECT_TYPE 5
#define PRESSURE_OBJECT_TYPE 6
#define CONDITIONAL_TRANSLATING_OBJECT_TYPE 7

#define DEFAULT_SPRITE_TYPE -1
#define GRENADE_PICKUP_TYPE 0

#define BASIC_CHARACTER_TYPE 0

#define BASIC_ENEMY_TYPE 0 
#define FROG_ENEMY_TYPE 1
#define FLOWER_ENEMY_TYPE 2

#define FIRST_CONDITIONAL_TYPE 0
#define CONVERSATION_TYPE 1

#define INT_TYPE_STRING "INT"
#define FLOAT_TYPE_STRING "FLOAT"
#define STRING_TYPE_STRING "STRING"
#define BOOL_TYPE_STRING "BOOL"

#endif /*INCLUDE_H_*/
